#ifndef __HASH_HXX__
#define __HASH_HXX__

#include "mytypes.h"
#include "mydll.h"

#if defined(__cplusplus)
extern "C"
{
#endif

typedef tUInt32 (*tHashFunction)(const tByte *, tUInt32);

tUInt32 hash6432shift(const tByte *data, tUInt32 size);

tUInt32 RSHash  (const tByte *data, tUInt32 size);
tUInt32 JSHash  (const tByte *data, tUInt32 size);
tUInt32 PJWHash (const tByte *data, tUInt32 size);
tUInt32 ELFHash (const tByte *data, tUInt32 size);
tUInt32 BKDRHash(const tByte *data, tUInt32 size);
tUInt32 SDBMHash(const tByte *data, tUInt32 size);
tUInt32 DJBHash (const tByte *data, tUInt32 size);
tUInt32 DEKHash (const tByte *data, tUInt32 size);
tUInt32 BPHash  (const tByte *data, tUInt32 size);
tUInt32 APHash  (const tByte *data, tUInt32 size);
tUInt32 MyHash  (const tByte *data, tUInt32 size);

#if defined(__cplusplus)
} /*  extern "C" */
#endif

#endif /* __HASH_HXX__ */
